home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / PowerPlant / C3DMFViewer / Sources / StQD3DInitializer.h < prev   
Encoding:
C/C++ Source or Header  |  1995-12-04  |  1004 b   |  55 lines  |  [TEXT/CWIE]

  1. //
  2. //    StQD3DInitializer.h
  3. //
  4. //    A stack-based class to initialize and clean up a QuickDraw 3D environment.
  5. //    Declare it in main() after your toolbox initialization.
  6. //
  7. //    by James Jennings
  8. //    November 12, 1995
  9. //
  10.  
  11. #pragma once
  12.  
  13. #include <QD3D.h>
  14.  
  15. class StQD3DInitializer {
  16. public:
  17.     StQD3DInitializer(void);
  18.     ~StQD3DInitializer(void);
  19.     TQ3Status GetStatus(void);
  20.     Boolean HasQD3D(void);
  21. private:
  22.     TQ3Status status;
  23. };
  24.  
  25. inline
  26. Boolean StQD3DInitializer::HasQD3D(void)
  27. {
  28.     long result;
  29.     OSErr err = Gestalt(gestaltQD3D, &result);
  30.     return err==noErr && result == gestaltQD3DAvailable;
  31. }
  32.  
  33. inline
  34. StQD3DInitializer::StQD3DInitializer(void) : status(kQ3Failure)
  35. {
  36.     if (!HasQD3D()) return;    // Throw exception?
  37.     status = Q3Initialize();
  38. //    if (status == kQ3Failure) // Throw exception?
  39. }
  40.  
  41. inline
  42. StQD3DInitializer::~StQD3DInitializer(void)
  43. {
  44.     if (status==kQ3Success)
  45.         status = Q3Exit();
  46. //    if (status == kQ3Failure) // Throw exception?
  47. }
  48.  
  49. inline
  50. TQ3Status StQD3DInitializer::GetStatus(void)
  51. {
  52.     return status;
  53. }
  54.  
  55.